A universally unique identifier (UUID) is an identifying number meeting a standard used in software development to uniquely identify information. In distributed systems, applications often require the use of UUIDs for uniquely identifying information. For example, UUIDs may be used to identify messages and packets that are exchanged between systems. Accordingly, these UUIDs must be unique across space and time to provide accurate identification of the data for which they are associated.
A UUID is typically (though not always) a sixteen byte number generated by a computer system. Many tools for generating UUIDs exist, using a variety of algorithms. In choosing a tool to generate UUIDs, it is often necessary to consider the time required to generate UUIDs and the preferred degree of randomness of the generated numbers. For example, an algorithm that provides a greater degree of randomness often times requires more time to generate the UUIDs. Alternatively, an algorithm that is more time efficient generally produces UUIDs that are less likely to be random. Accordingly, when an application requires the use of UUIDs, executing the application often takes more time to execute if the application calls a UUID generator that provides a higher degree of randomness over a UUID generator that provides a lower degree of randomness. The result is that developers must choose between a more efficient generator to save time or a more effective generator to produce a more reliable result.